; Music of Mag Max (1986) (Imagine)
; Ripped by Megachur the 28/10/2006

	write "MAGMAX.BIN"

music_date_rip	equ &19a6
music_adr	equ &8000
first_theme	equ 0
last_theme	equ 0

	read "music_header_v1_0.asm"

	jp l8006
	jp l801f
.l8006
	di
	ld hl,#0038
	ld de,l802f
	ld bc,#0003
	ldir
	ld a,#c3
	ld (#0038),a
	ld hl,l803c
	ld (#0039),hl
	ei
	ret
.l801f
	di
	ld hl,l802f
	ld de,#0038
	ld bc,#0003
	ldir
	ei
	jp l8224
.l802f
	ret
	nop
	nop
;
.stop_music
;
	xor a
	ld (l832c),a
	ld (l832a),a
	jp l8224
.l803c
	di
	push af
	push bc
	push de
	push hl
	push ix
	ld a,(l832a)
	and a
	jp nz,l8059
	ld a,(l832c)
	and a
	jp nz,l80e4
;.l8051
	pop ix
	pop hl
	pop de
	pop bc
	pop af
	ei
.l8051		; warning -> moved because I don't use this play program
	ret
;
.init_music
.l8059
;
	ld a,#01
	ld (l832c),a
;	ld a,(l832a)	modified by Megachur for init music !
	defs 3,0
	ld (l832b),a
	ld hl,l83ae
	ld bc,#0006
.l806a
	dec a
	jp z,l8072
	add hl,bc
	jp l806a
.l8072
	ld ix,l8336
	ld b,#03
	xor a
	ld (l8333),a
.l807c
	ld (ix+#05),a
	ld (ix+#0d),a
	ld (ix+#0c),a
	ld (ix+#02),a
	ld (ix+#03),a
	push af
	ld a,(hl)
	ld e,a
	ld (ix+#0a),a
	inc hl
	ld a,(hl)
	ld d,a
	ld (ix+#0b),a
	inc hl
	push hl
	push bc
	ld a,(de)
	inc de
	ld (ix+#06),e
	ld (ix+#07),d
	call l81d2
	ld hl,l8333
	inc (hl)
	pop bc
	pop hl
	pop af
	ld de,#0010
	add ix,de
	djnz l807c
	ld (l832d),a
	ld (l8330),a
	ld (l8331),a
	ld (l832e),a
	ld (l814c),a
	ld (l832a),a
	ld hl,l8360
	ld a,(hl)
	inc hl
	or (hl)
	ld (l8335),a
	ld b,#38
	jp nz,l80d5
	ld b,#3c
.l80d5
	ld a,b
	ld (l8334),a
	ld a,#05
	ld (l8151),a
	call l8218
	jp l8051
.l80e4
	ld a,(l8151)
	inc a
	ld (l8151),a
	cp #06
	jp nz,l8051
	xor a
	ld (l8151),a
;
.play_music
;
	ld a,(l814c)
	inc a
	ld (l814c),a
	ld hl,l814d
	cp (hl)
	jp z,l8108
	call l8321
	jp l8051
.l8108
	call l82f9
	ld a,(l814e)
	and a
	jp z,l8145
	ld a,(l814f)
	inc a
	ld (l814f),a
	cp #01
	jp nz,l8128
	ld c,#38
	ld a,#07
	call l8235
	jp l8145
.l8128
	cp #04
	jp nz,l8145
	xor a
	ld (l814f),a
	ld a,(l8150)
	cpl
	ld (l8150),a
	ld c,a
	ld a,#06
	call l8235
	ld c,#18
	ld a,#07
	call l8235
.l8145
	xor a
	ld (l814c),a
	jp l8051
.l8151 equ $ + 5
.l8150 equ $ + 4
.l814f equ $ + 3
.l814e equ $ + 2
.l814d equ $ + 1
.l814c
	db #00,#06,#00,#03,#00,#00
.l8152
	ld a,(ix+#05)
	and a
	jp z,l8184
	dec (ix+#05)
	ret nz
	jp l8184
.l8160
	ld l,(ix+#06)
	ld h,(ix+#07)
	ld a,(hl)
	inc hl
	ld (ix+#06),l
	ld (ix+#07),h
	and a
	jp nz,l8181
	ld l,(ix+#0a)
	ld h,(ix+#0b)
	ld (ix+#06),l
	ld (ix+#07),h
	jp l8160
.l8181
	call l81d2
.l8184
	ld l,(ix+#08)
	ld h,(ix+#09)
	ld a,(hl)
	ld c,a
	inc hl
	ld (ix+#08),l
	ld (ix+#09),h
	and a
	jp z,l8160
	bit 7,a
	jp nz,l81ae
	dec c
	call l81f2
	ld a,#0f
	ld (ix+#01),a
	ld c,a
	ld a,(l8333)
	add #08
	jp l8235
.l81ae
	cp #d0
	jp z,l81c3
	cp #c0
	jp nz,l81cb
	ld a,(l814d)
	sla a
	ld (l814d),a
	jp l8184
.l81c3
	ld a,#01
	ld (l814e),a
	jp l8184
.l81cb
	ld a,c
	and #0f
	ld (ix+#05),a
	ret
.l81d2
	ld hl,l840f
	ld b,a
	ld a,(l8333)
	cp #02
	ld a,b
	jp nz,l81e2
	ld hl,l8431
.l81e2
	dec a
	ld c,a
	ld b,#00
	add hl,bc
	add hl,bc
	ld e,(hl)
	inc hl
	ld d,(hl)
	ld (ix+#08),e
	ld (ix+#09),d
	ret
.l81f2
	ld hl,l8366
	ld b,#00
	add hl,bc
	add hl,bc
	ld c,(hl)
	inc hl
	ld b,(hl)
	ld a,(l8333)
	cp #01
	jp nz,l8205
	inc bc
.l8205
	ld (ix+#02),c
	ld (ix+#03),b
.l820b
	add a
	push bc
	push af
	call l8235
	pop af
	pop bc
	inc a
	ld c,b
	jp l8235
.l8218
	call l8224
	ld a,(l8334)
	ld c,a
	ld a,#07
	jp l8235
.l8224
	ld bc,#000d
.l8227
	ld a,b
	push bc
	call l8235
	pop bc
	dec b
	jp p,l8227
	ld a,#07
	ld c,#3f
.l8235
	ld b,#f4
	out (c),a
	ld b,#f6
	in a,(c)
	or #c0
	out (c),a
	and #3f
	out (c),a
	ld b,#f4
	out (c),c
	ld b,#f6
	ld c,a
	or #80
	out (c),a
	out (c),c
	ret
.l8253
	ld ix,l8336
	xor a
	ld (l8333),a
	call l8278
	ld ix,l8346
	ld a,#01
	ld (l8333),a
	call l8278
	ld a,(l8335)
	and a
	ret z
	ld ix,l8356
	ld a,#02
	ld (l8333),a
.l8278
	ld a,(ix+#0d)
	inc a
	ld (ix+#0d),a
	cp (ix+#00)
	ret c
	ld (ix+#0d),#00
	ld a,(ix+#01)
	sub #01
	ret c
	ld (ix+#01),a
	ld c,a
	ld a,(l8333)
	add #08
	jp l8235
.l8299
	ld a,(l832e)
	inc a
	ld (l832e),a
	ld hl,l832f
	cp (hl)
	ret c
	xor a
	ld (l832e),a
	ld a,(l832d)
	xor #01
	ld (l832d),a
	ld bc,(l8338)
	ld de,(l8348)
	and a
	jp z,l82c2
	dec bc
	dec de
	jp l82c4
.l82c2
	inc bc
	inc de
.l82c4
	xor a
	push de
	call l820b
	pop bc
	ld a,#01
	jp l820b
.l82cf
	ld a,(l8335)
	and a
	ret z
	ld a,(l8331)
	inc a
	ld (l8331),a
	ld hl,l8332
	cp (hl)
	ret c
	xor a
	ld (l8331),a
	ld bc,(l8358)
	ld a,(l8330)
	xor #01
	ld (l8330),a
	ld a,#02
	jp nz,l820b
	inc bc
	jp l820b
.l82f9
	ld ix,l8336
	xor a
	ld (l8333),a
	call l8152
	ld ix,l8346
	ld a,#01
	ld (l8333),a
	call l8152
	ld a,(l8335)
	and a
	ret z
	ld ix,l8356
	ld a,#02
	ld (l8333),a
	jp l8152
.l8321
	call l8253
	call l8299
	jp l82cf
.l8331 equ $ + 7
.l8330 equ $ + 6
.l832f equ $ + 5
.l832e equ $ + 4
.l832d equ $ + 3
.music_end equ $ + 2
.l832c equ $ + 2
.l832b equ $ + 1
.l832a
	db #01,#00,#00,#00,#00,#04,#00,#00
.l8338 equ $ + 6
.l8336 equ $ + 4
.l8335 equ $ + 3
.l8334 equ $ + 2
.l8333 equ $ + 1
.l8332
	db #01,#00,#38,#00,#03,#00,#00,#00
	db #01,#00,#00,#00,#00,#00,#00,#00
.l8348 equ $ + 6
.l8346 equ $ + 4
	db #00,#00,#00,#00,#03,#00,#00,#00
	db #01,#00,#00,#00,#00,#00,#00,#00
.l8358 equ $ + 6
.l8356 equ $ + 4
	db #00,#00,#00,#00,#03,#00,#00,#00
.l8360 equ $ + 6
	db #01,#00,#00,#00,#00,#00,#00,#00
	db #00,#00,#00,#00
.l8366
	dw #01de,#01c3,#01aa,#0192
	dw #017b,#0166,#0152,#013f
	dw #012d,#011c,#010c,#00fd
	dw #00ef,#00e1,#00d5,#00c9
	dw #00be,#00b3,#00a9,#009f
	dw #0096,#008e,#0086,#007f
	dw #0077,#0071,#006a,#0064
	dw #005f,#0059,#0054,#0050
	dw #004b,#0047,#0043,#003f
.l83ae
	dw l83b4,l83c7,l83da
.l83b4
	db #0f,#01,#02,#03,#04,#05,#06,#07
	db #08,#09,#0a,#0b,#0c,#0d,#0e,#0f
	db #0f,#10,#00
.l83c7
	db #0f,#01,#02,#03,#04,#05,#06,#07
	db #08,#09,#0a,#0b,#0c,#0d,#0e,#0f
	db #0f,#11,#00
.l83da
	db #01,#01,#01,#02,#01,#03,#04,#05
	db #01,#01,#01,#02,#01,#01,#02,#01
	db #03,#04,#05,#01,#01,#01,#02,#01
	db #03,#04,#05,#01,#01,#01,#02,#01
	db #01,#02,#01,#03,#04,#05,#01,#01
	db #01,#01,#01,#01,#01,#04,#06,#03
	db #01,#04,#06,#03,#00
.l840f
	dw l843d,l844e,l8490,l84b1
	dw l84d2,l84e3,l8514,l8595
	dw l85a6,l85dd,l85f4,l8615
	dw l8626,l864c,l86b0,l86d1
	dw l8752
.l8431
	dw l87d3,l87e4,l87f5,l8806
	dw l8817,l8838
.l843d
	db #22,#22,#20,#20,#1d,#1d,#1b,#1b
	db #19,#19,#14,#14,#16,#16,#19,#19
.l844e equ $ + 1
	db #00,#d0,#1b,#1b,#1b,#1b,#14,#14
	db #16,#16,#16,#16,#16,#16,#1b,#1b
	db #1d,#1d,#16,#16,#16,#16,#16,#16
	db #16,#16,#16,#16,#16,#16,#20,#20
	db #1b,#1b,#1d,#1d,#1d,#1d,#1d,#1d
	db #1d,#1d,#20,#20,#1b,#1b,#1d,#1d
	db #19,#19,#1b,#1b,#20,#20,#19,#19
	db #1b,#1b,#1b,#1b,#1b,#1b,#1d,#20
.l8490 equ $ + 3
	db #20,#20,#00,#22,#20,#20,#20,#1d
	db #1b,#1b,#1b,#19,#16,#16,#16,#14
	db #16,#19,#1b,#1d,#1d,#1d,#1d,#22
	db #22,#20,#20,#20,#20,#20,#20,#1d
.l84b1 equ $ + 4
	db #1d,#1d,#1b,#00,#1b,#1b,#19,#19
	db #16,#16,#14,#14,#1d,#20,#1d,#1b
	db #19,#1b,#19,#16,#14,#16,#14,#11
	db #0f,#0d,#0a,#08,#0a,#0d,#0f,#11
.l84d2 equ $ + 5
	db #14,#16,#19,#16,#00,#08,#08,#0a
	db #0a,#0d,#0d,#0f,#0f,#11,#11,#14
.l84e3 equ $ + 6
	db #14,#16,#1b,#1b,#16,#00,#1b,#1b
	db #1b,#1b,#1b,#1b,#1b,#1b,#1d,#1d
	db #1b,#1b,#19,#19,#16,#16,#1b,#1d
	db #1d,#1d,#1d,#1d,#1d,#1d,#1b,#1b
	db #1d,#1d,#20,#20,#1d,#1b,#1b,#1b
	db #19,#19,#16,#16,#14,#14,#16,#22
.l8514 equ $ + 7
	db #16,#22,#16,#22,#16,#22,#00,#1b
	db #1b,#1b,#1b,#14,#14,#16,#16,#16
	db #16,#16,#16,#1b,#1b,#1d,#1d,#16
	db #16,#16,#16,#16,#16,#16,#16,#16
	db #16,#16,#16,#20,#20,#1b,#1b,#1d
	db #1d,#1d,#1d,#1d,#1d,#1d,#1d,#20
	db #20,#1b,#1b,#1d,#1d,#19,#19,#1b
	db #1b,#20,#20,#19,#19,#1b,#1b,#1b
	db #1b,#1b,#1b,#1d,#20,#20,#20,#22
	db #20,#20,#20,#1d,#1b,#1b,#1b,#19
	db #16,#16,#16,#14,#16,#19,#1b,#1d
	db #1d,#1d,#1d,#22,#22,#20,#20,#20
	db #20,#20,#20,#1d,#1d,#1d,#1b,#1b
	db #1b,#19,#19,#16,#16,#14,#14,#1d
	db #20,#1d,#1b,#19,#1b,#19,#16,#14
	db #16,#14,#11,#14,#16,#19,#16,#19
	db #1b,#1d,#19,#1b,#1d,#20,#1d,#00
.l8595
	db #22,#f1,#20,#f1,#1d,#f1,#1b,#f1
	db #19,#f1,#14,#f1,#16,#f1,#19,#f1
.l85a6 equ $ + 1
	db #00,#1b,#f3,#14,#f1,#16,#f3,#16
	db #f1,#1b,#f1,#1d,#f1,#16,#f3,#16
	db #f3,#16,#f3,#20,#f1,#1b,#f1,#1d
	db #f1,#1d,#f1,#1d,#f1,#1d,#f1,#20
	db #f1,#1b,#f1,#1d,#f1,#19,#f1,#1b
	db #f1,#20,#f1,#19,#f1,#1b,#f1,#1b
	db #f1,#1b,#f1,#1d,#f1,#20,#f1,#00
.l85dd
	db #22,#20,#f2,#1d,#1b,#f2,#19,#16
	db #f2,#14,#16,#19,#1b,#1d,#f3,#22
.l85f4 equ $ + 7
	db #f1,#20,#f5,#1d,#f2,#1b,#00,#1b
	db #f1,#19,#f1,#16,#f1,#14,#f1,#1d
	db #20,#1d,#1b,#19,#1b,#19,#16,#14
	db #16,#14,#11,#0f,#0d,#0a,#08,#0a
	db #0d,#0f,#11,#14,#16,#19,#16,#00
.l8615
	db #08,#f1,#0a,#f1,#0d,#f1,#0f,#f1
	db #11,#f1,#14,#f1,#16,#1b,#f1,#16
.l8626 equ $ + 1
	db #00,#1b,#f7,#1d,#f1,#1b,#f1,#19
	db #f1,#16,#f1,#1b,#1d,#f6,#1b,#f1
	db #1d,#f1,#20,#f1,#1d,#1b,#1b,#f1
	db #19,#f1,#16,#f1,#14,#f1,#16,#22
.l864c equ $ + 7
	db #1d,#16,#22,#1d,#16,#22,#00,#1b
	db #f3,#14,#f1,#16,#f5,#1b,#f1,#1d
	db #f1,#16,#16,#f1,#16,#16,#f4,#16
	db #f1,#16,#20,#f1,#1b,#f1,#1d,#f7
	db #20,#f1,#1b,#f1,#1d,#f1,#19,#f1
	db #1b,#f1,#20,#f1,#19,#f1,#1b,#f5
	db #1d,#20,#f2,#22,#20,#20,#f1,#1d
	db #1b,#f2,#19,#16,#f2,#14,#16,#19
	db #1b,#1d,#f3,#22,#f1,#20,#f5,#1d
	db #f2,#1b,#1b,#f1,#19,#f1,#16,#f1
	db #14,#f1,#1d,#20,#1d,#1b,#19,#1b
	db #19,#16,#14,#16,#14,#11,#14,#16
	db #19,#16,#19,#1b,#1d,#19,#1b,#1d
.l86b0 equ $ + 3
	db #20,#1d,#00,#0a,#0a,#0a,#0a,#0a
	db #0a,#0a,#0a,#0a,#0a,#0a,#0a,#0a
	db #0a,#0a,#0a,#0a,#16,#11,#0a,#16
	db #11,#0a,#16,#11,#0a,#16,#11,#0a
.l86d1 equ $ + 4
	db #16,#11,#16,#00,#16,#16,#16,#16
	db #16,#16,#16,#16,#16,#16,#16,#16
	db #16,#16,#16,#16,#18,#18,#18,#18
	db #18,#18,#18,#18,#18,#18,#18,#18
	db #18,#18,#18,#18,#19,#19,#19,#19
	db #19,#19,#19,#19,#19,#19,#19,#19
	db #1b,#1b,#1b,#1b,#18,#18,#18,#18
	db #18,#18,#18,#18,#11,#1d,#1d,#11
	db #1d,#11,#1d,#1d,#16,#16,#16,#16
	db #16,#16,#16,#16,#16,#16,#16,#16
	db #16,#16,#16,#16,#18,#18,#18,#18
	db #18,#18,#18,#18,#18,#18,#18,#18
	db #18,#18,#18,#18,#19,#19,#19,#19
	db #19,#19,#19,#19,#1b,#1b,#1b,#1b
	db #1b,#1b,#1b,#1b,#1d,#1d,#1d,#1d
	db #1d,#1d,#1d,#1d,#1d,#1e,#1d,#1b
.l8752 equ $ + 5
	db #1d,#1e,#1d,#1d,#00,#16,#16,#16
	db #16,#16,#16,#16,#16,#16,#16,#16
	db #16,#16,#16,#16,#16,#18,#18,#18
	db #18,#18,#18,#18,#18,#18,#18,#18
	db #18,#18,#18,#18,#18,#19,#19,#19
	db #19,#19,#19,#19,#19,#19,#19,#19
	db #19,#1b,#1b,#1b,#1b,#18,#18,#18
	db #18,#18,#18,#18,#18,#11,#1d,#1d
	db #11,#1d,#11,#1d,#1d,#19,#19,#19
	db #19,#19,#19,#19,#19,#19,#19,#19
	db #19,#19,#19,#19,#19,#1b,#1b,#1b
	db #1b,#1b,#1b,#1b,#1b,#1b,#1b,#1b
	db #1b,#1b,#1b,#1b,#1b,#1e,#1e,#1e
	db #1e,#1e,#1e,#1e,#1e,#22,#22,#22
	db #22,#22,#22,#22,#22,#21,#21,#21
	db #21,#21,#21,#21,#21,#21,#22,#21
.l87d3 equ $ + 6
	db #1f,#21,#22,#21,#21,#00,#0a,#0a
	db #16,#16,#0a,#0a,#16,#16,#0a,#0a
.l87e4 equ $ + 7
	db #16,#16,#0a,#0a,#16,#16,#00,#03
	db #03,#0f,#0f,#03,#03,#0f,#0f,#03
	db #03,#0f,#0f,#03,#03,#0f,#0f,#00
.l87f5
	db #05,#05,#11,#11,#05,#05,#11,#11
	db #05,#05,#11,#11,#05,#05,#11,#11
.l8806 equ $ + 1
	db #00,#08,#08,#14,#14,#08,#08,#14
	db #14,#08,#08,#14,#14,#08,#08,#14
.l8817 equ $ + 2
	db #14,#00,#0a,#0a,#16,#16,#08,#08
	db #14,#14,#06,#06,#12,#12,#05,#05
	db #11,#11,#03,#03,#0f,#0f,#03,#03
	db #0f,#0f,#05,#05,#11,#11,#05,#05
.l8838 equ $ + 3
	db #11,#11,#00,#06,#06,#12,#12,#06
	db #06,#12,#12,#06,#06,#12,#12,#06
	db #06,#12,#12,#00

.game_name
	db "Mag Max",0
.game_year
	db "1986",0
.game_publisher
	db "Imagine",0
.music_author
	db "",0
.music_comment
	db "",0
	
	read "music_end_v1_0.asm"
